<?php

/**
 * Интерфейс абстракции баз данных
 * @author Shock
 */
interface IDatabase
{
    /**
     * Передаем ссылку на уже открытое соединение
     * @param resourse $connection
     */
    function setConnection ($connection);

    /**
     * Устанавливаем соединение с БД
     * @param string $host
     * @param string $username
     * @param string $password
     */
    function connect ($host, $username, $password);

    /**
     * Имя базы данных, с которой работаем
     * @param string $dbName
     */
    function setDbName ($dbName);

    /**
     * @param string $cs
     */
    function setCharset ($cs);

    /**
     * Устанавливает префикс для таблиц в базе данных
     * @param string $prefix
     */
     function setPrefix ($prefix);

    /**
     * Начинаем, заканчиваем или откатываем транзакцию
     * @param int $action Database::START, Database::COMMIT, Database::ROLLBACK
     */
    function transaction ($action);
    
    /**
     * Создаем объект запроса
     * @return IDbQuery
     */
    function query ();
}
